home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
serien
/
purity
/
nr.13
/
pcq-programme
/
vsb1.0
/
vsb1.0.p
< prev
next >
Wrap
Text File
|
1995-04-22
|
6KB
|
230 lines
program Verstärker;
{ VSB1.0 --> Tool zur Berechnung einfacher Verstärkerstufen
Freeware - (C) 1/1993 by J.Stötzer
Meine Adresse: J. Stötzer
An der Hasel 195
O-6000 Suhl 1
(ab 1.7.1993: 98527 Suhl) }
{------------------------------------------------------------------------}
const Esc = chr($9b);
var r1,r2,rc,re,rg,rcs,rs,r10,rbe,rce,ra,rb,rein : real;
uc,ue,uoc,ube,dube,b,v,n,ic : real;
xx : cardinal;
sel,sel2 : char;
Win,Con : ptr;
Titel : str;
{------------------------------------------------------------------------}
procedure About;
begin
clrscr;
writeln;
writeln(Esc,4,";",32,"m","Prog zur Berechnung einfacher Verstärkerstufen");
writeln;
writeln(Esc,0,";",3,";",33,"m"," ",chr(169)," 1/1993 by J. Stötzer");
writeln(Esc,0,"m");
writeln("Dieses Teil ist Freeware, solange nichts verändert wird.");
writeln;
writeln("Nähere Infos bzgl. Schaltungen usw. stehen in der Anleitung.");
writeln;
writeln;
writeln("Meine Adresse (Für Verbesserungsvorschläge, Laberei...) :");
writeln;
writeln(Esc,32,"m",Esc,20,"C","J. Stötzer");
writeln(Esc,20,"C","An der Hasel 195");
writeln(Esc,20,"C","O-6000 Suhl 1");
writeln(Esc,20,"C","(Ab 1.7.93.: 98527 Suhl )");
writeln;
writeln(Esc,0,"m",Esc,35,"C","Have Fun - Janosh");
writeln;
delay(8*50);
end;
{------------------------------------------------------------------------}
procedure EF;
begin
rein:=1/(1/(b*re+rbe)+1/r1+1/r2);
v:=1/(rbe/b/re+1);
ra:=1/(1/((rbe+rg)/b)+1/re);
writeln;
writeln(Esc,3,"m","Emitterfolger",Esc,0,"m");
writeln;
end;
{------------------------------------------------------------------------}
procedure ST;
begin
v:=1/(-1/(1/(1/rc+1/rce)*b/rbe)-re/rc);
rein:=1/(1/(b*re+rbe)+1/r1+1/r2);
ra:=1/(1/((1/(rbe+re+rg)*b*re+1)*rce)+1/rc);
writeln;
writeln(Esc,3,"m","Emitterschaltung mit Stromgegenkopplung",Esc,0,"m");
writeln;
end;
{------------------------------------------------------------------------}
procedure SP;
var v0 : real;
begin
write("Rb = ");
readln(rb);
v0:=-1/(1/rc+1/rce+1/r1)*b/rbe;
v:=1/(1/v0-rb/r1);
rein:=1/((1-v0)/r1+1/rbe)+rb;
ra:=1/(1/r1+1/(r1*rbe/(rb+rg)+rbe+r1)+1/rc+1/rce)/b;
writeln;
writeln(Esc,3,"m","Emitterschaltung mit Spannungsgegenkopplung",Esc,0,"m");
writeln;
end;
{------------------------------------------------------------------------}
procedure Calc;
begin
repeat
clrscr;
writeln(Esc,1,";",4,";",32,"m");
writeln("Berechnung einfacher Verstärkerstufen ",chr(169)," 1/1993 J.Stötzer");
writeln(Esc,0,"m");
writeln(" 1 - Emitterschaltung mit Stromgegenkopplung");
writeln(" 2 - Emitterschaltung mit Spannungsgegenkopplung");
writeln(" 3 - Emitterfolger");
writeln;
writeln(" 4 - Ein paar Infos");
writeln(" 5 - Dieses Menu");
writeln;
writeln(" 6 - Ende");
writeln;
repeat
write(Esc,3,"m","Bitte wählen: ",Esc,0,"m");
readln(sel);
until sel in ["1".."6"];
if sel<"4" then begin
clrscr;
writeln("Eingabe der Beschaltung");
writeln;
write("R1 = ");
readln(r1);
if sel="2" then
r2:=100e+6
else begin
write("R2 = ");
readln(r2);
end;
write("Rc = ");
readln(rc);
if sel="2" then
re:=1
else begin
write("Re = ");
readln(re);
end;
write("Rg = ");
readln(rg);
write("b = ");
readln(b);
write("Uoc = ");
readln(uoc);
if sel="2" then
xx:=1
else
xx:=0;
ube:=0;
dube:=2;
rcs:=rc*xx;
rs:=r2/(r1+r2);
r10:=-8.699988e-15*(rs*(r1/b+rcs)+re);
repeat
dube:=dube/2;
n:=(exp(ube/26.00001e-3)*r10)+uoc*rs-ube;
if n>=0 then
ube:=ube+dube
else
ube:=ube-dube;
until dube<1e-4;
ic:=8.699978e-15*exp(ube/26.00001e-3);
rbe:=b/ic*26.00002e-3;
rce:=rbe*200e+3/b/b;
ue:=re*ic;
uc:=uoc-ic*rc;
case sel of
"1" : ST;
"2" : SP;
"3" : EF;
end;
if uc-r10>=0 then begin
writeln("Ic = ",ic:15," A");
writeln("Uc = ",uc:15," V");
writeln("Ue = ",ue:15," V");
writeln("V = ",v:15);
writeln("Rein = ",rein:15," Ohm");
writeln("Ra = ",ra:15," Ohm");
end else
writeln("Ue > Uc , Neudimensionierung nötig !!!");
writeln;
write(" ---> ENTER");
readln(sel2);
end else
if sel="4" then
About;
until sel="6"
end;
{------------------------------------------------------------------------}
procedure DoIt;
begin
Titel:="Verstärkerberechnung (C) by J. Stötzer";
Win:=Open_Window(0,0,564,180,1,0,$1007,Titel,Nil,100,50,640,256);
if Win=Nil then begin
writeln("Window nicht zu öffnen");
halt(15);
end;
Con:=OpenConsole(Win);
if Con=Nil then begin
writeln("Console nicht zu öffnen");
Close_Window(Win);
halt(15);
end;
SetStdIO(Con);
Calc;
SetStdIO(Nil);
CloseConsole(Con);
Close_Window(Win);
end;
{------------------------------------------------------------------------}
{ Na, schon mal so'n langes Hauptprogramm gesehen ??? }
{------------------------------------------------------------------------}
begin
DoIt;
end.